package Soligee.controller.bo;

import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.model.vo.lancamentos.ItensCompraVO;
import com.icesoft.faces.component.ext.HtmlInputText;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;



public class PedidoCompraBO {

  private double valorTotalPedido;
    //valor total dos produtos
    private double valorTotalItens;


     public double calculaTotalPedido(double valorFrete, double valorDesconto,
                                        double valorEmbalagem, double totalProduto)
    {
        double totalPedido = 0;
        try{

         totalPedido = (totalProduto + (valorFrete + valorEmbalagem)) - valorDesconto;
         this.setValorTotalPedido(totalPedido);
        }catch (NumberFormatException ex){
            System.err.println("Erro:" + ex.getMessage());
        }
        return totalPedido;
    }
  
    public double calculaValorTotalItens(List<ItensCompraVO> listaItensCompra)
    {
        double totalPedido = 0;
        try{
            Iterator it = listaItensCompra.iterator();
            while(it.hasNext()){
                ItensCompraVO itemCompra = (ItensCompraVO)it.next();
                totalPedido = totalPedido + itemCompra.getTotalItens();
            }
         this.setValorTotalItens(valorTotalItens);
        }catch (NumberFormatException ex){
            System.err.println("Erro:" + ex.getMessage());
        }
        return totalPedido;
    }

    public double calcularPorcentagem(HtmlInputText valor, HtmlInputText total) {
        double porc = 0;
        try{
        porc = (Double.parseDouble(valor.getValue().toString()) * 100) / Double.parseDouble(total.getValue().toString()) ;
        }
        catch (ArithmeticException ex){
            System.err.println("Erro:" + ex.getMessage());
            ex.getStackTrace();
        }
        return porc;
    }

    public double calcularValor(HtmlInputText porcentagem, HtmlInputText total) {
        double val =0;
        try{
            val =(Double.parseDouble(porcentagem.getValue().toString()) * Double.parseDouble(total.getValue().toString()))/100;
        }catch (ArithmeticException ex){
                System.err.println("Erro:" + ex.getMessage());
                ex.getStackTrace();
         }
        return val;
    }
     //metodo necessario para montar os itens da tabela
    public List<ItensCompraVO> montaItens(int codPedido){
        List<ItensCompraVO> listaItensCompra= new ArrayList();
        //facade para busca
        SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
        Iterator it = facadeBusca.buscaComAssociacaoSemCriterio(ItensCompraVO.class,"pedidocompra").iterator();
        while(it.hasNext()){
            ItensCompraVO item = (ItensCompraVO)it.next();
            if(item.getPedidocompra().getCodPedido()==codPedido){
                 listaItensCompra.add(item);
                 
            }           
         }//fim while
       return listaItensCompra;
    }


    //gets e stters
    public double getValorTotalPedido() {
        return valorTotalPedido;
    }

    public void setValorTotalPedido(double valorTotalPedido) {
        this.valorTotalPedido = valorTotalPedido;
    }

    public double getValorTotalItens() {
        return valorTotalItens;
    }

    public void setValorTotalItens(double valorTotalItens) {
        this.valorTotalItens = valorTotalItens;
    }


    
   
}
